package com.itheima.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDate;
import java.time.LocalDateTime;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class Clazz {
    private Integer id; //ID
    private String name; //班级名称
    private String room; //班级教室
    private LocalDate beginDate; //开课时间
    private LocalDate endDate; //结课时间
    private Integer masterId; //班主任
    private Integer subject; //学科
    private LocalDateTime createTime; //创建时间
    private LocalDateTime updateTime; //修改时间


    private String masterName;//班主任名称



    /**
     * 获取班级状态
     */
    private String status; //
//    /*
//      - 未开班 , 在读 , 已结课
//在 Java 中，对象序列化（如转换为 JSON）时，
// 默认会调用所有 getter 方法来获取属性值。
// 即使status字段未在类中显式定义，
// 只要存在getStatus()方法，序列化工具（如 Jackson）就会将其视为一个属性，并将返回值包含在 JSON 中。
//     */


    // 计算班级状态的方法
    public String getStatus() {
        LocalDate now = LocalDate.now();
        if (endDate != null && now.isAfter(endDate)) {
            return "已结课";
        } else if (beginDate != null && now.isBefore(beginDate)) {
            return "未开班";
        } else {
            return "在读中";
        }
    }
}

